//====================================
// Interface function declare
//====================================
BOOLEAN Wb35Reg_initial( IN phw_data_t pHwData );
VOID Uxx_power_on_procedure( IN phw_data_t pHwData );
VOID Uxx_power_off_procedure( IN phw_data_t pHwData );
VOID Uxx_ReadEthernetAddress( IN phw_data_t pHwData );
VOID Dxx_initial( IN phw_data_t pHwData );
VOID Mxx_initial( IN phw_data_t pHwData );
VOID RFSynthesizer_initial( IN phw_data_t pHwData );
//VOID RFSynthesizer_SwitchingChannel( IN phw_data_t pHwData, IN CHAR Channel );
VOID RFSynthesizer_SwitchingChannel( IN phw_data_t pHwData, IN ChanInfo Channel );
VOID BBProcessor_initial( IN phw_data_t pHwData );
VOID BBProcessor_RateChanging( IN phw_data_t pHwData, IN UCHAR rate ); // 20060613.1
//VOID RF_RateChanging( IN phw_data_t pHwData, IN UCHAR rate ); // 20060626.5.c Add
UCHAR RFSynthesizer_SetPowerIndex( IN phw_data_t pHwData, IN UCHAR PowerIndex );
UCHAR RFSynthesizer_SetMaxim2828_24Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetMaxim2828_50Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetMaxim2827_24Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetMaxim2827_50Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetMaxim2825Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetAiroha2230Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetAiroha7230Power( IN phw_data_t, IN UCHAR index );
UCHAR RFSynthesizer_SetWinbond242Power( IN phw_data_t, IN UCHAR index );
VOID GetTxVgaFromEEPROM( IN phw_data_t pHwData );
VOID EEPROMTxVgaAdjust( IN phw_data_t pHwData ); // 20060619.5 Add

#define RFWriteControlData( _A, _V ) Wb35Reg_Write( _A, 0x0864, _V )

VOID Wb35Reg_destroy( IN phw_data_t pHwData );

BOOLEAN Wb35Reg_Read( IN phw_data_t pHwData, IN USHORT RegisterNo, IN OUT PULONG pRegisterValue );
BOOLEAN Wb35Reg_ReadSync( IN phw_data_t pHwData, IN USHORT RegisterNo, IN OUT PULONG pRegisterValue );
BOOLEAN Wb35Reg_Write( IN phw_data_t pHwData, IN USHORT RegisterNo, IN ULONG RegisterValue );
BOOLEAN Wb35Reg_WriteSync( IN phw_data_t pHwData, IN USHORT RegisterNo, IN ULONG RegisterValue );
BOOLEAN Wb35Reg_WriteWithCallbackValue( IN phw_data_t pHwData,
								IN USHORT RegisterNo,
								IN ULONG RegisterValue,
								IN PCHAR pValue,
								IN CHAR	Len);
BOOLEAN Wb35Reg_BurstWrite( IN phw_data_t pHwData, IN USHORT RegisterNo, IN PULONG pRegisterData, IN UCHAR NumberOfData, IN UCHAR Flag );

VOID Wb35Reg_EP0VM( IN phw_data_t pHwData );
VOID Wb35Reg_EP0VM_start( IN phw_data_t pHwData );
VOID Wb35Reg_EP0VM_complete( IN PURB pUrb );

ULONG BitReverse( ULONG dwData, ULONG DataLength);

VOID CardGetMulticastBit( IN  UCHAR Address[MAC_ADDR_LENGTH], OUT UCHAR *Byte, OUT UCHAR *Value );
ULONG CardComputeCrc( IN PUCHAR Buffer, IN UINT Length );

VOID Wb35Reg_phy_calibration( IN phw_data_t pHwData );
VOID Wb35Reg_Update( IN phw_data_t pHwData, IN USHORT RegisterNo, IN ULONG RegisterValue );
BOOL adjust_TXVGA_for_iq_mag( IN phw_data_t pHwData );


